package com.zmn.plat.business.interfaces.category;

import java.util.List;

import com.zmn.plat.common.dto.category.CategoryDRO;
import com.zmn.plat.common.dto.category.CategoryPageDIO;
import com.zmn.plat.common.dto.category.CategoryPageDRO;
import com.zmn.plat.model.entity.category.BaseCategory;

/**
 * @author linfeng
 * @version v1.0
 * @类说明：产品分类管理级联停用service
 * @since 2019/09/25 20:51
 */
public interface BaseCategoryBService {

    /**
     * 后台产品二级分类Id获取前台二级分类
     *
     * @param categId
     *            后台产品二级分类Id
     * @return
     */
    CategoryDRO findShowCategoryByCategId(Integer categId);

    /**
     * 列表查询-分页
     *
     * @param categoryQuery
     *            统一入参
     * @return
     */
    CategoryPageDRO listPageByQuery(CategoryPageDIO categoryQuery);

    /**
     * 一级产品分类停用：停用一级产品分类后，对应其下的二级产品分类和前台产品都需停用
     *
     * @param arrayIds
     * @param status
     * @param mcStaffName
     * @return
     */
    void updateStatusByCategoryOne(List<Integer> arrayIds, int status, String mcStaffName);

    /**
     * 二级产品停用：停用二级产品分类后，对应其下的前台产品停用
     *
     * @param arrayIds
     * @param status
     * @param mcStaffName
     * @return
     */
    void updateStatusByCategoryTwo(List<Integer> arrayIds, int status, String mcStaffName);

    /**
     * 计价器名称的检查，修改分类如果计价器是禁用状态，需要级联更新计价器
     *
     * @param result
     * @return
     */
    Integer updateByKey(BaseCategory result, String operator);

    /**
     * 新增：计价器名称的检查，插入
     *
     * @param category
     * @return
     */
    Integer insert(BaseCategory category, String operator);

}
